#include <string>
#include <vector>
#include <fstream>
#include <optional>

class Pattern 
{
public:
    Pattern(std::ifstream& infile);
    std::size_t mirrorsPosition() const;

private:
    std::optional<std::size_t> rowMirrorsPosition() const;
    std::optional<std::size_t> colMirrorsPosition() const;

    bool compareColumns(std::size_t col1, std::size_t col2) const;

private:
    std::vector<std::string> _matrix;
};